import request from '@/utils/request'

const LowCode = '/lowCode'
const Component = `${LowCode}/Component`
const ComponentCategoryManager = `${LowCode}/componentCategoryManager`
const ComponentTemplate = `${LowCode}/getTemplateList`

const ComponentApi = {
  componentAndCategory: `${ComponentCategoryManager}/list`,
  editComponentAttr: `${Component}/editComponentAttrById`,
  editCategory: `${ComponentCategoryManager}/editCategoryById`,
  componentCategoryTree: `${ComponentCategoryManager}/getComponentCategoryTree`,
  componentTemplate: `${ComponentTemplate}/getTemplateList`,
  addComponent: `${Component}/addComponent`,
  getComponentById: `${Component}/getComponentById`,
}

/**
 * 根据parentId获取仪表盘和分类的列表
 * @param {*} parameter
 * @returns
 */
export function getComponentAndCategoryListByParentId(parameter) {
  return request({
    url: ComponentApi.componentAndCategory,
    method: 'post',
    data: parameter,
  })
}

/**
 * 获取所有保存路径
 * @param {*} parameter
 * @returns
 */
export function getComponentCategoryTree(parameter) {
  return request({
    url: ComponentApi.componentCategoryTree,
    method: 'get',
    data: parameter,
  })
}

/**
 * 编辑仪表盘属性(不包括仪表盘内部的组件json)
 * @param {*} parameter
 * @returns
 */
export function editComponentAttrById(parameter) {
  return request({
    url: ComponentApi.editComponentAttr,
    method: 'post',
    data: parameter,
  })
}
/**
 * 编辑仪表盘属性(不包括仪表盘内部的组件json)
 * @param {*} parameter
 * @returns
 */
export function editCategoryById(parameter) {
  return request({
    url: ComponentApi.editCategory,
    method: 'post',
    data: parameter,
  })
}

/**
 * 获取模板列表
 * @param {*} parameter
 * @returns
 */
export function getTemplateList(parameter) {
  return request({
    url: ComponentApi.componentTemplate,
    method: 'get',
    data: parameter,
  })
}

/**
 * 新增仪表盘
 * @param {*} parameter
 * @returns
 */
export function addComponent(parameter) {
  return request({
    url: ComponentApi.addComponent,
    method: 'post',
    data: parameter,
  })
}

/**
 * 根据id获取仪表盘
 * @param {*} parameter
 * @returns
 */
export function getComponentById(parameter) {
  return request({
    url: ComponentApi.getComponentById,
    method: 'get',
    params: parameter,
  })
}
